/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controllers;

import beans.Mapa;
import beans.Mensaje;
import beans.TimeCambio;
import config.Parameters;
import config.Reloj;
import facade.PedidosFacade;
import javax.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import packetTracker.Dispatcher;
import packetTracker.PacketTracker;
import request.ConfigRequest;

/**
 *
 * @author Ahmed
 */
@Controller
public class ConfigController {
    private @Autowired ServletContext servletContext;
    private static PedidosFacade pedidosFacade = new PedidosFacade();
    
    @RequestMapping(value = "/obtenerFecha.htm",method=RequestMethod.POST)
    public @ResponseBody TimeCambio obtenerFecha(){
        TimeCambio time = new TimeCambio();
        Reloj reloj = Reloj.getInstancia();
        time.fecha = reloj.getFechaString("dd-MM-yyyy");
        return time;       
    }
    
    @RequestMapping(value = "/cambiarFecha.htm",method=RequestMethod.POST)
    public @ResponseBody Mensaje cambiarFecha(@RequestBody ConfigRequest config){
        Mensaje msje = new Mensaje();
        Reloj reloj = Reloj.getInstancia();
        PacketTracker.getInstancia().setServletContext(servletContext);
        
        if (!PacketTracker.getInstancia().isRunning()){
            Parameters.initConParametros(config);
            Mapa.init(Parameters.ANCHO_MAPA, Parameters.ALTO_MAPA);
            String fecha = config.fecha;
            String [] diaMesAno = fecha.split("-");            
            reloj.setMinutosXSegundo(config.velReloj);
            reloj.setReloj(0, 0, Integer.parseInt(diaMesAno[0]), Integer.parseInt(diaMesAno[1]), Integer.parseInt(diaMesAno[2]));
            reloj.setConfigurado(true);
            Dispatcher.idPedidoInt = pedidosFacade.obtenerId(diaMesAno);
            Dispatcher.leerEventosDiaConfig(diaMesAno[0], diaMesAno[1], diaMesAno[2]);
        }
        else{
            reloj.setMinutosXSegundo(config.velReloj);
        }
        
        return msje;
    }
    
    @RequestMapping(value = "/verificarConfiguracion.htm",method=RequestMethod.POST)
    public @ResponseBody Mensaje verificarConfiguracion(){
        PacketTracker.getInstancia().setServletContext(servletContext);
        Mensaje msje = new Mensaje();
        Reloj reloj = Reloj.getInstancia();
        if (reloj.isConfigurado()==true) {
            msje.me="Configurado";
        } else {
            msje.me="No configurado";
        }
        //Dispatcher.leerEventosDiaConfig(diaMesAno[0], diaMesAno[1], diaMesAno[2]);
        
        return msje;
    }
}
